Skip to content

[okyungjin] WEEK 01 Solutions#2653

Merged
okyungjin merged 10 commits into
DaleStudy:mainfrom
okyungjin:main
Jun 27, 2026
Merged

[okyungjin] WEEK 01 Solutions#2653
okyungjin merged 10 commits into
DaleStudy:mainfrom
okyungjin:main

Conversation

@okyungjin

@okyungjin okyungjin commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

답안 제출 문제

작성자 체크 리스트

  • Projects의 오른쪽 버튼(▼)을 눌러 확장한 뒤, Week를 현재 주차로 설정해주세요.
  • 문제를 모두 푸시면 프로젝트에서 StatusIn Review로 설정해주세요.
  • 코드 검토자 1분 이상으로부터 승인을 받으셨다면 PR을 병합해주세요.

검토자 체크 리스트

Important

본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!

  • 바로 이전에 올라온 PR에 본인을 코드 리뷰어로 추가해주세요.
  • 본인이 검토해야하는 PR의 답안 코드에 피드백을 주세요.
  • 토요일 전까지 PR을 병합할 수 있도록 승인해주세요.

@dalestudy

dalestudy Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

📊 okyungjin 님의 학습 현황

이번 주 제출 문제

문제 난이도 유형 분석
contains-duplicate Easy ✅ 의도한 유형
house-robber Medium ✅ 의도한 유형
longest-consecutive-sequence Medium ⚠️ 유형 불일치
top-k-frequent-elements Medium ✅ 의도한 유형
two-sum Easy ✅ 의도한 유형

누적 학습 요약

  • 풀이한 문제: 0 / 75개
  • 이번 주 유형 일치율: 80% (5문제 중 4문제 일치)

문제 풀이 현황

카테고리 진행도 완료
Array □□□□□□□ 0 / 10 ← 아직 시작 안 함
Binary □□□□□□□ 0 / 5 ← 아직 시작 안 함
Dynamic Programming □□□□□□□ 0 / 11 ← 아직 시작 안 함
Graph □□□□□□□ 0 / 8 ← 아직 시작 안 함
Interval □□□□□□□ 0 / 5 ← 아직 시작 안 함
Linked List □□□□□□□ 0 / 6 ← 아직 시작 안 함
Matrix □□□□□□□ 0 / 4 ← 아직 시작 안 함
String □□□□□□□ 0 / 10 ← 아직 시작 안 함
Tree □□□□□□□ 0 / 14 ← 아직 시작 안 함
Heap □□□□□□□ 0 / 3 ← 아직 시작 안 함

🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다.

🔢 API 사용량 (gpt-5-nano)
요청 입력 토큰 출력 토큰 합계 비용
1 278 33 311 $0.000027
2 547 67 614 $0.000054
3 559 69 628 $0.000056
4 758 70 828 $0.000066
5 746 67 813 $0.000064
6 1,015 70 1,085 $0.000079
7 2,658 99 2,757 $0.000173
8 2,693 108 2,801 $0.000178
9 3,363 190 3,553 $0.000244
10 3,840 206 4,046 $0.000274
합계 16,457 979 17,436 $0.001214

@parkhojeong parkhojeong self-requested a review June 24, 2026 03:43
Constraint: Commit only the requested contains-duplicate/okyungjin.py change
Confidence: medium
Scope-risk: narrow
Directive: Keep LeetCode solution files scoped to one problem and one author file
Tested: Reviewed staged diff for contains-duplicate/okyungjin.py
Not-tested: Did not run solution because requested operation was commit-only

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Hash Map / Hash Set, Two Pointers
  • 설명: 정렬 후 인접 중복을 확인하는 방식은 Two Pointers의 변형으로 간주 가능하며, 두 번째 구현은 해시 집합(Hash Set)으로 중복 탐지를 수행한다. 두 가지 모두 중복 여부를 빠르게 판단하는 패턴이다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(nlogN) O(n)
Space O(nlogN) O(1)

피드백: 정렬 풀이와 해시셋 풀이 두 가지가 제시되어 있습니다. 두 방법 모두 한 번의 선형 스캔으로 중복 여부를 확인합니다.

개선 제안: 현재 구현이 적절해 보입니다.

Comment thread house-robber/okyungjin.py

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Dynamic Programming, Greedy
  • 설명: 연속한 주택을 건너뛰고 최대 이익을 얻는 문제로, 각 위치까지의 최적 부분해를 저장하는 DP 패턴을 사용합니다. 또한 선택과 비교로 최댓값을 갱신하는 방식은 그리디 성격도 보이며, 공간을 O(1)로 유지합니다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(N) O(n)
Space O(1) O(1)

피드백: 연속 여부를 판단하며 두 이전 상태만 유지하는 최적화된 동적계획법 구현입니다.

개선 제안: 현재 구현이 적절해 보입니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Greedy, Dynamic Programming, Sort
  • 설명: 정렬과 연속 여부 판단으로 최댓값을 갱신하는 방식으로 문제를 해결한다. 시간 복잡도 목표는 O(N)이나 구현은 정렬(O(N log N))를 사용하고, 연속 부분 문자열처럼 길이를 추적하며 최댓값을 업데이트하는 아이디어가 Greedy 성격에 가깝다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n log n) O(n log n)
Space O(N) O(1)

피드백: 정렬 후 순회로 연속 부분 수열의 길이를 계산합니다. 중복 처리도 포함되어 있습니다.

개선 제안: 가능하면 해시셋 기반의 선형 해법으로 개선 여지가 있습니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Hash Map / Hash Set, Heap / Priority Queue, Greedy, Dynamic Programming
  • 설명: 코드에서 빈도수를 세기 위해 해시 맵(Counter/dict)을 사용하고, 상위 k개를 뽑기 위해 최소힙(heapq) 등 여러 방법으로 정렬/선정하는 구조를 보인다. 부분적으로 최적해 도출과 부분집합 추출이 핵심이며, 빈도 기반의 선택은 그리디적 요소도 포함한다.

📊 시간/공간 복잡도 분석

ℹ️ 이 파일에는 4가지 풀이가 포함되어 있어 각각 분석합니다.

풀이 1: SolutionA.topKFrequent — Time: ✅ O(nlogK) → O(n log k) / Space: ✅ O(N) → O(n)
유저 분석 실제 분석 결과
Time O(nlogK) O(n log k)
Space O(N) O(n)

피드백: Counter를 활용한 간결한 구현이며, 가장 많이 쓰이는 접근 방식입니다.

개선 제안: 현재 구현이 적절해 보입니다.

풀이 2: SolutionB.topKFrequent — Time: ✅ O(nlogN) → O(n log n) / Space: ✅ O(N) → O(n)
유저 분석 실제 분석 결과
Time O(nlogN) O(n log n)
Space O(N) O(n)

피드백: 간단하지만 n이 커질 때 비효율적일 수 있습니다.

개선 제안: 현재 구현이 적절해 보입니다.

풀이 3: SolutionC.topKFrequent — Time: ✅ O(N) → O(n) / Space: ✅ O(N) → O(n)
유저 분석 실제 분석 결과
Time O(N) O(n)
Space O(N) O(n)

피드백: 빈도별 버킷을 사용해 선형 시간 복잡도로 상위 k개를 찾습니다.

개선 제안: 현재 구현이 적절해 보입니다.

풀이 4: SolutionD.topKFrequent — Time: ❌ O(N logN) → O(n log k) / Space: ✅ O(N) → O(n)
유저 분석 실제 분석 결과
Time O(N logN) O(n log k)
Space O(N) O(n)

피드백: 메모리 대비 속도 면에서 균형 있는 방법입니다.

개선 제안: 현재 구현이 적절해 보입니다.

Comment thread two-sum/okyungjin.py

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Hash Map / Hash Set, Greedy
  • 설명: 해당 코드는 한 번의 해를 찾기 위해 숫자와 인덱스를 해시 맵에 저장하고, 각 원소에 대해 필요한 페어를 빠르게 조회하는 방식으로 동작한다. 이를 통해 선형 시간에 문제를 해결한다.

📊 시간/공간 복잡도 분석

복잡도
Time O(n)
Space O(n)

피드백: 해시맵 활용으로 선형 시간에 해결하는 표준 풀이입니다.

개선 제안: 현재 구현이 적절해 보입니다.

💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!

@okyungjin okyungjin moved this from Solving to In Review in 리트코드 스터디 8기 Jun 27, 2026
@DaleSeo

DaleSeo commented Jun 27, 2026

Copy link
Copy Markdown
Member

@DaleStudy 승인

@dalestudy dalestudy Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

승인되었습니다! 👍

@okyungjin okyungjin merged commit 37f9995 into DaleStudy:main Jun 27, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from In Review to Completed in 리트코드 스터디 8기 Jun 27, 2026

@parkhojeong parkhojeong left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다양한 방식으로 풀어보시려고 하신 것이 느껴져서 좋았던 거 같습니다. 수고하셨습니다 :)

Comment thread house-robber/okyungjin.py
Comment on lines +13 to +27
prev2 = 0 # 앞앞집 최대 수익
prev1 = 0 # 앞집 최대 수익

for num in nums:
# 현재 최대 수익은
# 1) 앞집 수익
# 2) 앞앞집 수익 + 현재수익
curr = max(prev1, prev2 + num)

# 다음 턴을 위해 값을 슬라이딩(?)
# prev3 prev2 prev1 curr
# a b c
# a b c
prev2 = prev1
prev1 = curr

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
prev2 = 0 # 앞앞집 최대 수익
prev1 = 0 # 앞집 최대 수익
for num in nums:
# 현재 최대 수익은
# 1) 앞집 수익
# 2) 앞앞집 수익 + 현재수익
curr = max(prev1, prev2 + num)
# 다음 턴을 위해 값을 슬라이딩(?)
# prev3 prev2 prev1 curr
# a b c
# a b c
prev2 = prev1
prev1 = curr
prev2 = 0 # 앞앞집 최대 수익
prev1 = 0 # 앞집 최대 수익
for num in nums:
# 현재 최대 수익
curr = max(prev1, prev2 + num)
prev2 = prev1
prev1 = curr

로직이 직관적이어서 좋네요! prev1, prev2에 대한 주석은 선언 시점에만 있어도 잘 전달되는 것 같고 슬라이딩 관련된 로직은 주석이 없어도 충분히 의미가 전달되는 거 같습니다 :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다양한 풀이 시도해보신 것 멋지네요! most_common 은 몰랐는데 이런게 있군요! 덕분에 배워갑니다

제공되는 함수들이 실제로 어떻게 구현되어 있는지 살펴보는 것 좋은 거 같아요. 저도 파이썬의 sorted 구현체를 살펴보려고 합니다 :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

두 풀이가 함께 있어서 가독성 비교하기 좋았던 거 같습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Completed

Development

Successfully merging this pull request may close these issues.

3 participants